AND path in a binary tree - HackerEarth Solution


Math Array

Python Code:

t = int(input())

arr = [0] * int(10**5 + 5)
counts = [0] * int(10**5 + 5)

arr[3] = 1
counts[3] = 1
count = 1

for j in range(4, 10**5 + 5):
    if j%2==0:
        arr[j] = arr[j-1]
        continue
    elif (j//2)%2 ==0 :
        arr[j] = arr[j-1]
        continue

    counts[j] =  1 + counts[j//2]

    count += counts[j]
    arr[j] = count


for i in range(t):
    s = int(input())
    print(arr[s])


Comments

Submit
0 Comments
More Questions

1157E - Minimum Array
1661D - Progressions Covering
262A - Roma and Lucky Numbers
1634B - Fortune Telling
1358A - Park Lighting
253C - Text Editor
365B - The Fibonacci Segment
75A - Life Without Zeros
1519A - Red and Blue Beans
466A - Cheap Travel
659E - New Reform
1385B - Restore the Permutation by Merger
706A - Beru-taxi
686A - Free Ice Cream
1358D - The Best Vacation
1620B - Triangles on a Rectangle
999C - Alphabetic Removals
1634C - OKEA
1368C - Even Picture
1505F - Math
1473A - Replacing Elements
959A - Mahmoud and Ehab and the even-odd game
78B - Easter Eggs
1455B - Jumps
1225C - p-binary
1525D - Armchairs
1257A - Two Rival Students
1415A - Prison Break
1271A - Suits
259B - Little Elephant and Magic Square